use bevy::prelude::*;
use crate::tank::Position;

// 用于空间分区的资源
#[derive(Resource)]
pub struct SpatialGrid {
    /// 网格数据结构，用于存储位置与实体集合的映射关系
    ///
    /// 该结构体使用HashMap来维护一个二维网格系统，其中：
    /// - Key: Position类型，表示网格中的坐标位置
    /// - Value: Vec<Entity>类型，表示在该位置上的实体列表
    ///
    /// 这种设计允许在同一个网格位置上存在多个实体，
    /// 适用于游戏开发、模拟系统等需要空间管理的场景
    pub grid: std::collections::HashMap<Position, Vec<Entity>>,
}